

///// #include "plcgw_sys.h"

#ifndef __plcgw_sys_h__
#define __plcgw_sys_h__

//#include "plcgw_cfg.h"



enum {
	EVT_KEY1 = 1,
	EVT_KEY2, 
	EVT_KEY3,
	EVT_KEY4,
	EVT_KEY5, 
	EVT_KEY6, 
	EVT_EXEC_BIND, 
	EVT_UPDATE_WHITELIST,
	EVT_TEST_PLC,
	EVT_AUTO_ADD_WHITELIST,   // 10
	
	EVT_NODE_ONLINE_NOTIFY,   // 11
	EVT_KEY_PRESS,
	EVT_KEY_RELEASE, 
	EVT_KEY_MULT, 
	EVT_REPORT_LAMP_DATA, 
	EVT_FLUSH_LAMP1,
	EVT_FLUSH_LAMP_CCT, 
	EVT_FLUSH_LAMP_RGB, 
	EVT_FLUSH_BK, 
	EVT_FLUSH_ELE_METER,     // 20
	
	EVT_FLUSH_WATER_METER,   //21
	EVT_FLUSH_GAS_METER, 
	EVT_MAINTAIN_HOMELAMP1, 
	EVT_RESET_APP,
	EVT_RESET_SYSTEM,
	EVT_UPDATE_WHITELIST_BY_IOTKT,


	
};
#define ALL_KEY_EVT   (EVT_KEY1|EVT_KEY2|EVT_KEY3|EVT_KEY4|EVT_KEY5|EVT_KEY6)



typedef struct {
	long mtype;
	char mtext[256];
}msgbuf_t;




enum {
    MODE_UNREG = 0,
	MODE_NORMAL,
	MODE_OTA,	
};


enum {
	MODE_POWERON,
	MODE_IP_OK,
	MODE_CNNT_OK,
	MODE_REG_OK,
	MODE_START_OTA,
};



void set_sys_mode(int mode);
int is_normal_mode(void);
unsigned int get_mode(void);
void set_mode(unsigned int new_mode);
//void set_app_evt(int evt);

void system_reset(void);
void start_ota(void);


int plcgw_sysmsg_init(void);


int push_sysmsg_queue(const void *psrc, int len);



#endif

